// File:    MantenedorAsientoContable.cs
// Author:  admin
// Created: viernes, 11 de mayo de 2012 21:54:19
// Purpose: Definition of Class MantenedorAsientoContable

using System;
using System.Collections.Generic;
using EYDIngenieria.ERP.ObjetosDeNegocio.Repositorio;
using EYDIngenieria.ERP.ObjetosDeNegocio.Dominio;

namespace EYDIngenieria.ERP.Aplicacion.Mantenedores
{
    
    public class MantenedorAsientoContable
    {
        private EYDIngenieria.ERP.ObjetosDeNegocio.Repositorio.RepositorioAsientoContable RepositorioAsientoContable = new RepositorioAsientoContable();
        private RepositorioDesglose repositorioDesglose = new RepositorioDesglose();
        public EYDIngenieria.ERP.ObjetosDeNegocio.Dominio.AsientoContable[] Listar()
        {
            return RepositorioAsientoContable.Listar();
        }


        public EYDIngenieria.ERP.ObjetosDeNegocio.Dominio.AsientoContable Obtener(int id)
        {
            return RepositorioAsientoContable.Obtener(id);
        }

        public void Modificar(EYDIngenieria.ERP.ObjetosDeNegocio.Dominio.AsientoContable u)
        {
            RepositorioAsientoContable.Modificar(u);
        }

        public void Agregar(EYDIngenieria.ERP.ObjetosDeNegocio.Dominio.AsientoContable u)
        {
            AsientoContable asiento  = new AsientoContable();
            asiento.Detalle = u.Detalle;
            asiento.Fecha = u.Fecha;
            RepositorioAsientoContable.Agregar(asiento);
            Desglose desglose;
          
            foreach (Desglose d in u.Desglose)
            {
                desglose = new Desglose();
                desglose.Debe = d.Debe;
                desglose.Haber = d.Haber;
                desglose.Fecha = d.Fecha;
                desglose.CuentaContable = d.CuentaContable;
                desglose.AsientoContable = asiento;
                repositorioDesglose.Agregar(desglose);
                asiento.Desglose.Add(desglose);
               
            }

            
           
        }

        public void Eliminar(EYDIngenieria.ERP.ObjetosDeNegocio.Dominio.AsientoContable u)
        {
            RepositorioAsientoContable.Eliminar(u);
        }

    }
}